package com.junqi.msg.job;

import cn.hutool.core.collection.CollUtil;
import com.junqi.common.entity.RedisKeyManager;
import com.junqi.msg.adapter.WSAdapter;
import com.junqi.msg.service.WebSocketService;
import com.junqi.msg.utils.JsonUtils;
import com.junqi.msg.utils.RedisUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

import java.util.Set;

/**
 * **********************************  通知合并机制 中 向队列中用户下发通知拉取 *******************************
 * 后端通知前端拉取新消息调度
 */
@Component
@Slf4j
public class PushMsgJob {

    @Autowired
    private WebSocketService webSocketService;
    @Autowired
    private WSAdapter wsAdapter;

    // 每秒检查通知队列
    //@Scheduled(fixedRate = 1000)
    public void pushMsg() {

        // 获取所有需要通知的用户id（从 Redis SortedSet 中获取时间 <= 当前时间的用户）
//        Set<String> usersIds = RedisUtil.hkeys(RedisKeyManager.generateKey(RedisKeyManager.WS_NOTIF_QUEUE_USERS));
//        if (CollUtil.isNotEmpty(usersIds)) {
//            // 遍历用户并发送通知
//            webSocketService.sendMessageToUids(JsonUtils.toStr(wsAdapter.buildMsgNotifyResp()),usersIds);
//        }
    }

}
